

#ifndef _LUNAR_UTIL_H_
#define _LUNAR_UTIL_H_

#ifndef DLL_API
	#ifdef SHARE_STATIC
		#define DLL_API
	#else
		#define DLL_API		__declspec(dllexport)
	#endif
#endif


#define	DECLARE_FILE_HANDLE(name)	typedef unsigned long name
#define DECLARE_CONTEXT(name)		typedef unsigned long name
#define DECLARE_LHANDLE(name)		typedef unsigned long name

DECLARE_LHANDLE(DLLHANDLE);

class DLL_API Util
{
public:
	Util();
	~Util();

public:

	// dll related
	DLLHANDLE		LoadDll(char* filename);
	void*				GetFunction(DLLHANDLE handle, char* funcname);
	void				UnloadDll(DLLHANDLE	handle);

	unsigned long	GetSysTime();

};


#endif
